package com.fengkai.filepost.pdfoutstream.test.ODsolutions;

import java.util.Arrays;
import java.util.TreeSet;

/**
 * @author Fengkai
 * @creat 2023/4/11
 * 依据用户输入的单词前缀，从已输入的英文语句中联想出用户想输入的单词，按字典序输出联想到的单词序列，如果联想不到，请输出用户输入的单词前缀。
 * 注意：
 * 英文单词联想时，区分大小写
 * 缩略形式如”don’t”，判定为两个单词，”don”和”t”
 * 输出的单词序列，不能有重复单词，且只能是英文单词，不能有标点符号
 * 输入描述:
 * 输入为两行。
 * 首行输入一段由英文单词 word 和标点符号组成的语句 str；
 * 接下来一行为一个英文单词前缀 pre。
 */
public class InputLenlove {

    public static void main (String[] args) {
        System.out.println(getAssociation("The furthest distance in the world, Is not between life and death, But when I stand in frontof you, Yet you dont know that I love you.", "f"));
    }

    public static String getAssociation (String input, String pre) {
        input = input.replaceAll(",", " ").replaceAll("\\.", " ");
        String[] s = input.split(" ");
        TreeSet<String> strings = new TreeSet<>();
        for (String s1 : s) {
            if (s1.startsWith(pre)) {
                if (s1.contains("'")) {
                    s1 = s1.substring(0, s1.indexOf("'"));
                }
                strings.add(s1);
            }
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (String string : strings) {
            stringBuilder.append(string + " ");
        }
        return strings.size() != 0 ? stringBuilder.substring(0, stringBuilder.length() - 1) : pre;
    }
}
